#Boa:Frame:DetalleRecargos

import wx
import consultasBD
import utiles

ROJO = (255, 145, 145, 255)
VERDE = (145, 255, 145, 255)
AZUL = (145, 145, 255, 255)
BLANCO = (255, 255, 255, 255)
AMARILLO = (254, 248, 191, 255)

def create(parent,datos,estado):
    return DetalleRecargos(parent,datos,estado)

[wxID_DETALLERECARGOS, wxID_DETALLERECARGOSBUTTON1, 
 wxID_DETALLERECARGOSPANEL1, wxID_DETALLERECARGOSSTATICTEXT1, 
 wxID_DETALLERECARGOSSTATICTEXT10, wxID_DETALLERECARGOSSTATICTEXT11, 
 wxID_DETALLERECARGOSSTATICTEXT12, wxID_DETALLERECARGOSSTATICTEXT13, 
 wxID_DETALLERECARGOSSTATICTEXT14, wxID_DETALLERECARGOSSTATICTEXT15, 
 wxID_DETALLERECARGOSSTATICTEXT16, wxID_DETALLERECARGOSSTATICTEXT2, 
 wxID_DETALLERECARGOSSTATICTEXT3, wxID_DETALLERECARGOSSTATICTEXT4, 
 wxID_DETALLERECARGOSSTATICTEXT5, wxID_DETALLERECARGOSSTATICTEXT6, 
 wxID_DETALLERECARGOSSTATICTEXT7, wxID_DETALLERECARGOSSTATICTEXT8, 
 wxID_DETALLERECARGOSSTATICTEXT9, wxID_DETALLERECARGOSTEXTCTRL1, 
 wxID_DETALLERECARGOSTEXTCTRL10, wxID_DETALLERECARGOSTEXTCTRL11, 
 wxID_DETALLERECARGOSTEXTCTRL12, wxID_DETALLERECARGOSTEXTCTRL13, 
 wxID_DETALLERECARGOSTEXTCTRL14, wxID_DETALLERECARGOSTEXTCTRL15, 
 wxID_DETALLERECARGOSTEXTCTRL16, wxID_DETALLERECARGOSTEXTCTRL2, 
 wxID_DETALLERECARGOSTEXTCTRL3, wxID_DETALLERECARGOSTEXTCTRL4, 
 wxID_DETALLERECARGOSTEXTCTRL5, wxID_DETALLERECARGOSTEXTCTRL6, 
 wxID_DETALLERECARGOSTEXTCTRL7, wxID_DETALLERECARGOSTEXTCTRL8, 
 wxID_DETALLERECARGOSTEXTCTRL9, 
] = [wx.NewId() for _init_ctrls in range(35)]

class DetalleRecargos(wx.Frame):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Frame.__init__(self, id=wxID_DETALLERECARGOS, name='DetalleRecargos',
              parent=prnt, pos=wx.Point(522, 138), size=wx.Size(466, 460),
              style=wx.DEFAULT_FRAME_STYLE, title='Detalle cliente')
        self.SetClientSize(wx.Size(458, 433))

        self.panel1 = wx.Panel(id=wxID_DETALLERECARGOSPANEL1, name='panel1',
              parent=self, pos=wx.Point(0, 0), size=wx.Size(458, 433),
              style=wx.TAB_TRAVERSAL)

        self.staticText1 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT1,
              label='Sucursal', name='staticText1', parent=self.panel1,
              pos=wx.Point(24, 48), size=wx.Size(40, 13), style=0)

        self.textCtrl1 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL1,
              name='textCtrl1', parent=self.panel1, pos=wx.Point(24, 64),
              size=wx.Size(136, 21), style=0, value='')
        self.textCtrl1.SetEditable(False)

        self.staticText2 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT2,
              label='Usuario', name='staticText2', parent=self.panel1,
              pos=wx.Point(264, 48), size=wx.Size(36, 13), style=0)

        self.textCtrl2 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL2,
              name='textCtrl2', parent=self.panel1, pos=wx.Point(264, 64),
              size=wx.Size(96, 21), style=0, value='')
        self.textCtrl2.SetEditable(False)

        self.staticText3 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT3,
              label='Fecha', name='staticText3', parent=self.panel1,
              pos=wx.Point(24, 8), size=wx.Size(29, 13), style=0)

        self.textCtrl3 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL3,
              name='textCtrl3', parent=self.panel1, pos=wx.Point(24, 24),
              size=wx.Size(136, 21), style=0, value='')
        self.textCtrl3.SetEditable(False)

        self.staticText4 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT4,
              label='Nro. Cliente', name='staticText4', parent=self.panel1,
              pos=wx.Point(24, 96), size=wx.Size(57, 13), style=0)

        self.textCtrl4 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL4,
              name='textCtrl4', parent=self.panel1, pos=wx.Point(24, 112),
              size=wx.Size(80, 21), style=0, value='')
        self.textCtrl4.SetEditable(False)

        self.staticText5 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT5,
              label='Nombre', name='staticText5', parent=self.panel1,
              pos=wx.Point(104, 96), size=wx.Size(37, 13), style=0)

        self.textCtrl5 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL5,
              name='textCtrl5', parent=self.panel1, pos=wx.Point(104, 112),
              size=wx.Size(256, 21), style=0, value='')
        self.textCtrl5.SetEditable(False)

        self.staticText6 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT6,
              label='Tipo Operacion', name='staticText6', parent=self.panel1,
              pos=wx.Point(24, 264), size=wx.Size(72, 13), style=0)

        self.textCtrl6 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL6,
              name='textCtrl6', parent=self.panel1, pos=wx.Point(24, 280),
              size=wx.Size(80, 21), style=0, value='')
        self.textCtrl6.SetEditable(False)

        self.staticText7 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT7,
              label='Fecha Operacion', name='staticText7', parent=self.panel1,
              pos=wx.Point(104, 264), size=wx.Size(81, 13), style=0)

        self.textCtrl7 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL7,
              name='textCtrl7', parent=self.panel1, pos=wx.Point(104, 280),
              size=wx.Size(136, 21), style=0, value='')
        self.textCtrl7.SetEditable(False)

        self.staticText8 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT8,
              label='Descripcion', name='staticText8', parent=self.panel1,
              pos=wx.Point(24, 304), size=wx.Size(54, 13), style=0)

        self.textCtrl8 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL8,
              name='textCtrl8', parent=self.panel1, pos=wx.Point(24, 320),
              size=wx.Size(424, 21), style=0, value='')
        self.textCtrl8.SetEditable(False)

        self.staticText9 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT9,
              label='Deuda anterior', name='staticText9', parent=self.panel1,
              pos=wx.Point(24, 344), size=wx.Size(72, 13), style=0)

        self.textCtrl9 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL9,
              name='textCtrl9', parent=self.panel1, pos=wx.Point(24, 360),
              size=wx.Size(88, 21), style=0, value='')
        self.textCtrl9.SetEditable(False)

        self.staticText10 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT10,
              label='%', name='staticText10', parent=self.panel1,
              pos=wx.Point(144, 344), size=wx.Size(11, 13), style=0)

        self.textCtrl10 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL10,
              name='textCtrl10', parent=self.panel1, pos=wx.Point(144, 360),
              size=wx.Size(40, 21), style=0, value='')
        self.textCtrl10.SetEditable(False)

        self.staticText11 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT11,
              label='$', name='staticText11', parent=self.panel1,
              pos=wx.Point(184, 344), size=wx.Size(6, 13), style=0)

        self.textCtrl11 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL11,
              name='textCtrl11', parent=self.panel1, pos=wx.Point(184, 360),
              size=wx.Size(80, 21), style=0, value='')
        self.textCtrl11.SetEditable(False)

        self.staticText12 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT12,
              label='Deuda actualizada', name='staticText12',
              parent=self.panel1, pos=wx.Point(360, 344), size=wx.Size(88, 13),
              style=0)

        self.textCtrl12 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL12,
              name='textCtrl12', parent=self.panel1, pos=wx.Point(360, 360),
              size=wx.Size(88, 21), style=0, value='')
        self.textCtrl12.SetEditable(False)

        self.button1 = wx.Button(id=wxID_DETALLERECARGOSBUTTON1, label='Salir',
              name='button1', parent=self.panel1, pos=wx.Point(376, 400),
              size=wx.Size(75, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnSalir,
              id=wxID_DETALLERECARGOSBUTTON1)

        self.staticText13 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT13,
              label='Direccion', name='staticText13', parent=self.panel1,
              pos=wx.Point(104, 136), size=wx.Size(43, 13), style=0)

        self.textCtrl13 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL13,
              name='textCtrl13', parent=self.panel1, pos=wx.Point(104, 152),
              size=wx.Size(336, 21), style=0, value='')
        self.textCtrl13.SetEditable(False)

        self.staticText14 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT14,
              label='Telefono', name='staticText14', parent=self.panel1,
              pos=wx.Point(104, 176), size=wx.Size(42, 13), style=0)

        self.textCtrl14 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL14,
              name='textCtrl14', parent=self.panel1, pos=wx.Point(104, 192),
              size=wx.Size(256, 21), style=0, value='')
        self.textCtrl14.SetEditable(False)

        self.staticText15 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT15,
              label='email', name='staticText15', parent=self.panel1,
              pos=wx.Point(104, 216), size=wx.Size(24, 13), style=0)

        self.textCtrl15 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL15,
              name='textCtrl15', parent=self.panel1, pos=wx.Point(104, 232),
              size=wx.Size(256, 21), style=0, value='')
        self.textCtrl15.SetEditable(False)

        self.staticText16 = wx.StaticText(id=wxID_DETALLERECARGOSSTATICTEXT16,
              label='Estado', name='staticText16', parent=self.panel1,
              pos=wx.Point(360, 264), size=wx.Size(33, 13), style=0)

        self.textCtrl16 = wx.TextCtrl(id=wxID_DETALLERECARGOSTEXTCTRL16,
              name='textCtrl16', parent=self.panel1, pos=wx.Point(360, 280),
              size=wx.Size(88, 21), style=0, value='')
        self.textCtrl16.SetEditable(False)

    def __init__(self, parent, datos={}, aux="PENDIENTE"):
        self._init_ctrls(parent)
        cliente = datos
        estado = aux
        if cliente["tipooperacion"]=="RECA":
            tipooperacion="RECARGO"
        else:
            tipooperacion="DESCUENTO"
        nombre,direccion,telefono,email = self.buscarCliente(cliente["idcliente"])
        sucursal = self.buscarSucursal(cliente["sucursal"])
        self.textCtrl1.SetLabel(sucursal)
        self.textCtrl2.SetLabel(cliente["usuario"])
        fecha = str(cliente["fecha"])[:10]
        hora = str(cliente["fecha"]).split(" ")[1]
        fecha = utiles.invertirFecha2(fecha)+" "+hora
        self.textCtrl3.SetLabel(fecha)
        self.textCtrl4.SetLabel(cliente["idcliente"])
        self.textCtrl5.SetLabel(nombre)
        self.textCtrl13.SetLabel(direccion)
        self.textCtrl14.SetLabel(telefono)
        self.textCtrl15.SetLabel(email)
        self.textCtrl6.SetLabel(tipooperacion)
        fecha = str(cliente["fechaoperacion"])[:10]
        hora = str(cliente["fechaoperacion"]).split(" ")[1]
        fecha = utiles.invertirFecha2(fecha)+" "+hora
        self.textCtrl7.SetLabel(fecha)
        self.textCtrl8.SetLabel(cliente["descripcion"])
        self.textCtrl9.SetLabel(str(cliente["viejadeuda"]))
        self.textCtrl10.SetLabel(str(cliente["porcentaje"]))
        self.textCtrl11.SetLabel(str(cliente["valor"]))
        self.textCtrl12.SetLabel(str(cliente["nuevadeuda"]))
        self.textCtrl16.SetLabel(estado)
        color = BLANCO
        if estado=="OK":
            color = VERDE
        if estado=="BORRAR":
            color = ROJO
        self.textCtrl16.SetBackgroundColour(color)

    def OnSalir(self, event):
        self.Close()

    def buscarCliente(self,idcliente):
        sql = "SELECT * FROM cliente WHERE idcliente='"+idcliente+"'"
        resultado = consultasBD.ordenCrudaDict(sql)
        if resultado == None or resultado == ():
            return "","","",""
        resultado = resultado[0]
        nombre = resultado["nombre"]
        direccion = resultado["direccion"]+" / "+resultado["localidad"]
        telefono = resultado["telefono"]
        email = resultado["email"] 
        return nombre,direccion,telefono,email

    def buscarSucursal(self,idsucursal):
        sql = "SELECT nombre FROM sucursales WHERE codsucursal='"+str(int(idsucursal)+1)+"'"
        resultado = consultasBD.ordenCrudaDict(sql)
        if resultado == None or resultado == ():
            return ""
        return resultado[0]["nombre"]
